home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / language / isetl.arc / perms.t < prev    next >
Text File  |  1987-08-20  |  389b  |  25 lines

  1. $ permset
  2. $
  3. permset := func(s);
  4.         if not is_set(s) then return; end;
  5.         if #(s)=1 then return {[arb(s)]};
  6.         else return {t with x: x in s, t in permset(s less x)};
  7.         end;
  8.        end;
  9.  
  10. p := permset({1..4});
  11. #p;
  12. [ {s : s in p | s(1) = i} : i in [1..4] ];
  13.  
  14. $ setform.test
  15. $
  16.  
  17. s3 := permset({1,2,3});
  18.  
  19. pm3 := func(a,b);
  20.         return [a(b(i)): i in [1,2,3]];
  21.     end;
  22.  
  23. {s .pm3 t : s in s3, t in s3} = s3;
  24.  
  25.